マップチップとの当たり判定

マップチップとの当たり判定 - 斜め移動をスムーズにする

マップチップとの当たり判定のプログラムでは、プレイヤーが斜め移動しているときに壁にひっかかると、まったく動けなくなります。図のように、壁づたいに移動させたい場合は次のようにします

nanameido.png

当たり判定を大きくするも参照してください。

Player(一部)

    //マップチップとの当たり判定
    if(hitToChip(x,y) ){
        if (!hitToChip(sx,y)) {
            //x座標を元に戻したらぶつかっていない→x座標だけ元に戻す
            x=sx;
        } else if (!hitToChip(x,sy)) {
            //y座標を元に戻したらぶつかっていない→y座標だけ元に戻す
            y=sy;   
        } else {
            //片方だけ戻してもやっぱりぶつかっている→両方元に戻す
            x=sx;y=sy;
        }
    }

.